package com.jean.util;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

/**
 * <一句话功能简述>日志工厂
 * <功能详细描述>
 * 
 * @author  Jean
 * @version  [版本号, 2013年12月5日]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public class LoggerFactory
{
    /**
     * <一句话功能简述>获取Logger对象
     * <功能详细描述>
     * @return Logger对象
     * @see [类、类#方法、类#成员]
     */
    public static Logger getLogger()
    {
        return LogManager.getLogger(getCallClassName());
    }
    
    /**
     * <一句话功能简述>
     * <功能详细描述>
     * @param <T>
     * @param clazz
     * @return
     * @see [类、类#方法、类#成员]
     */
    public static <T> Logger getLogger(Class<T> clazz)
    {
        return LogManager.getLogger(clazz);
    }
    
    /**
     * <一句话功能简述>获取调用类 类名
     * <功能详细描述>
     * @return
     * @see [类、类#方法、类#成员]
     */
    private static String getCallClassName()
    {
        StackTraceElement[] ele = Thread.currentThread().getStackTrace();
        return ele[3].getClassName();
    }
}
